package com.eastfair.imaster.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.core.base.R;
import com.eastfair.imaster.dto.ConferenceDTO;
import com.eastfair.imaster.dto.ConferencePageQuery;
import com.eastfair.imaster.entity.Conference;
import com.eastfair.imaster.vo.ConferenceVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 论坛表
 * </p>
 *
 * @author zjn
 * @date 2021-08-31
 */
public interface ConferenceService extends SuperCacheService<Conference> {

    /**
     * 新增论坛
     *
     * @param conferenceDTO 论坛
     * @return 主键
     */
    R<Boolean> saveConference(ConferenceDTO conferenceDTO);

    /**
     * 通过id删除论坛
     *
     * @param id 主键
     * @return 是否删除成功
     */
    R<Boolean> deleteById(Long id);

    /**
     * 修改论坛
     *
     * @param conferenceDTO 论坛
     * @return 是否修改成功
     */
    R<Boolean> updateById(ConferenceDTO conferenceDTO);

    /**
     * 通过id查询论坛
     *
     * @param id 通过id查询论坛
     * @return 论坛实体
     */
    R<ConferenceVO> queryById(Long id);

    /**
     * 获取分页论坛列表
     *
     * @param params 分页条件
     * @return 分页论坛列表
     */
    Page<ConferenceVO> queryPageList(PageParams<ConferencePageQuery> params);

    /**
     * 获取论坛列表
     *
     * @param conferenceDTO 论坛
     * @return 论坛列表
     */
    List<ConferenceVO> queryList(ConferenceDTO conferenceDTO);

    /**
     * 启用禁用
     *
     * @param conferenceDTO 论坛
     * @return 是否成功
     */
    R<Boolean> updateEnabledById(ConferenceDTO conferenceDTO);
}
